ifneq (DEBUG, "-g")
	DEBUG += -O2
endif

IDIR = ../../include
CXX = g++
CPPFLAGS = -Wall -fopenmp $(DEBUG) -I$(IDIR) -lpapi

EXEC = memread.exe memwrite.exe memrw.exe

all: $(EXEC)

.PHONY: all 

$(EXEC): %.exe : %.o main.o test_utils.o
		  $(CXX) test_utils.o $< main.o -I./ -o $@ $(CPPFLAGS) 

$(OBJ): %.o : %.cpp main.cpp
		  $(CXX) -o $@ -c $< $(CPPFLAGS)

main.o: main.cpp 
		  $(CXX) -c main.cpp $(CPPFLAGS)

test_utils.o: test_utils.c
		g++ test_utils.c -c -o test_utils.o -I$(IDIR) 

.PHONY: debug
debug: clean
		  $(MAKE) $(MAKEFILE) all DEBUG="-g"

.PHONY: clean
clean:
	rm -f *.o *.exe
